// 岗位部门列表
var org;

// 岗位图层列表
var floorInfo;

$(function () {
    // 获取岗位图层
    getFloorInfo();
    // 连接pouchdb数据库
    var db = new PouchDB('hrm');
    // 从pouchdb数据库中获取组织机构
    db.get('orgInfo', function (error, doc) {
        if (error) {
            $.alert('获取组织机构信息失败！');
        } else {
            org = doc.data;
            // 获取数据列表
            initTable();
        }
    });
});

/**
 * 获取图层列表
 */
function getFloorInfo() {
    floorInfo = new Array();
    $("#floorSelect").empty();
    $("#floorSelect").prepend("<option value='0'>选择岗位图层</option>");//添加第一个option值
    $.get(baseUrl + '/floor/get', function (data) {
        if (data) {
            for (var key in data) {
                floorInfo.push({id: key, value: data[key]});
                $("#floorSelect").append("<option value='" + key + "'>" + data[key] + "</option>");
            }
        }
    });
}

/**
 * 初始化表格
 */
function initTable() {

    //先销毁表格
    $('#table').bootstrapTable('destroy');

    $('#table').bootstrapTable({
        toolbar: '#toolBar',
        pagination: true,
        clickToSelect: true,  //启用点击选中行
        sortable: false,
        sidePagination: "server",
        pageSize: "30",
        pageList: "[30, 60, 120, ALL]",
        showColumns: true,
        showRefresh: true,
        showExport: true,  //是否显示导出按钮
        buttonsAlign: "right",  //按钮位置
        exportTypes: ['excel'],  //导出文件类型
        exportOptions: {
            ignoreColumn: [0],// 忽略第一列
            fileName: "岗位信息",  //设置导出文件名称
            worksheetName: "sheet1",  //表格工作区名称
            tableName: "岗位信息",
            excelstyles: ['background-color', 'color', 'font-size', 'font-weight']
        },
        url: baseUrl + '/postInfo/queryByPage',
        columns: [
            {
                checkbox: true,
                align: 'center'
            }, {
                title: '审核状态',
                field: 'verify_status',
                align: 'center'
            },
            {
                title: '部门',
                field: 'org',
                align: 'center',
                formatter: orgFormatter
            },
            {
                title: '岗位序列',
                field: 'name',
                align: 'center'
            },
            {
                title: '岗位名称',
                field: 'name',
                align: 'center'
            },
            {
                title: '昆明机场岗位名称',
                field: 'kmia_name',
                align: 'center'
            },
            {
                title: '实际岗位名称',
                field: 'alias_name',
                align: 'center'
            },
            {
                title: '岗位性质',
                field: 'type',
                align: 'center'
            },
            {
                title: '覆盖区域',
                field: 'coverage_area',
                align: 'center'
            },
            {
                title: '资质要求',
                field: 'post_require',
                align: 'center'
            },
            {
                title: '所在区域',
                field: 'area',
                align: 'center'
            },
            {
                title: '岗位时间',
                field: 'post_time',
                align: 'center'
            },
            {
                title: '岗位配置系数',
                field: 'coefficient',
                align: 'center',
                visible: false
            },
            {
                title: '岗位单班人数',
                field: 'staffing',
                align: 'center',
                visible: false
            },
            {
                title: '岗位班制安排',
                field: 'shift_arrangement',
                align: 'center',
                visible: false
            },
            {
                title: '岗位人员总配置',
                field: 'people_configure',
                align: 'center',
                visible: false
            },
            {
                title: '岗位职责',
                field: 'post_duty',
                align: 'center',
                visible: false
            },
            {
                title: '岗位属性',
                field: 'nature',
                align: 'center',
                visible: false
            },
            {
                title: '附近可联动岗位名称',
                field: 'linkage_post_name',
                align: 'center',
                visible: false
            },
            {
                title: '视线状况',
                field: 'sight',
                align: 'center',
                visible: false
            },
            {
                title: '备注',
                field: 'remark',
                align: 'center',
                visible: false
            },
            {
                title: '岗位图层',
                field: 'floor',
                align: 'center',
                visible: false,
                formatter: floorFormatter
            }
        ],
        striped: true, //表格显示条纹
        search: false, //是否启用查询
        queryParamsType: "undefined",
        onLoadError: function () {
            $.confirm({
                title: '提示!',
                content: '服务器异常！',
                type: 'red',
                typeAnimated: true,
                buttons: {
                    close: {
                        text: '关闭',
                        btnClass: 'btn-red'
                    }
                }
            });
        },
        onLoadSuccess: function (data) {
            // 错误提示
            errorAlert(data);
        }
    });
}

// 组织机构
function orgFormatter(value, row, index) {
    var orgName = "";
    for (var i in org) {
        if (org[i].id == row.org) {
            orgName = org[i].value;
        }
    }
    return orgName;
}

// 岗位图层
function floorFormatter(value, row, index) {
    var floorName = "";
    for (var i in floorInfo) {
        if (floorInfo[i].id == row.floor) {
            floorName = floorInfo[i].value;
        }
    }
    return floorName;
}

/**
 * 获取选择行id
 * @returns {Array|*}
 */
function getIdSelections() {
    return $.map($('#table').bootstrapTable('getSelections'), function (row) {
        return row.id;
    });
}

/**
 * 表格项选择事件触发
 */
$('#table').on('check.bs.table uncheck.bs.table ' +
    'check-all.bs.table uncheck-all.bs.table', function () {
    $('#btnDel').prop('disabled', !$('#table').bootstrapTable('getSelections').length);
    $('#verifyTrue').prop('disabled', !$('#table').bootstrapTable('getSelections').length);
    $('#verifyFalse').prop('disabled', !$('#table').bootstrapTable('getSelections').length);
});

/**
 * 禁用按钮
 */
function disAbleButton() {
    $('#btnDel').prop('disabled', true);
    $('#verifyTrue').prop('disabled', true);
    $('#verifyFalse').prop('disabled', true);
}

/**
 * 删除操作
 */
function del() {
    var ids = getIdSelections();
    $.confirm({
        title: '确认',
        content: '确认删除？',
        buttons: {
            ok: {
                text: '确认',
                btnClass: 'btn-green',
                keys: ['enter'],
                action: function () {
                    $.post(
                        baseUrl + '/postInfo/del', {ids: ids.toString()},
                        function (data) {
                            if (data.success) {
                                $('#table').bootstrapTable('refresh', {silent: true});
                                // 灰按钮
                                disAbleButton();
                            } else {
                                // 错误提示
                                errorAlert(data);
                                // 后台错误
                                errorMsg(data.errorMsg);
                            }
                        }, 'json');
                }
            },
            close: {
                text: '取消',
                btnClass: 'btn-default',
                keys: ['esc'],
                action: function () {

                }
            }
        }
    });
}

/**
 * 搜索
 */
function search() {
    var post_name = $('#search_post_name').val();
    var opt = {
        url: baseUrl + "/postInfo/queryByPage",
        silent: true,
        query: {
            name: post_name.trim(),
            floor: $('#floorSelect').val(),
            verify_status: $('#verifyStatus').val()
        }
    };
    $("#table").bootstrapTable('refresh', opt);

}

/**
 * 删除操作
 */
function verify(result) {
    var ids = getIdSelections();
    $.confirm({
        title: '确认',
        content: '确认' + result + '？',
        buttons: {
            ok: {
                text: '确认',
                btnClass: 'btn-green',
                keys: ['enter'],
                action: function () {
                    $.post(
                        baseUrl + '/postInfo/verify', {ids: ids.toString(), verify_status: result},
                        function (data) {
                            if (data.success) {
                                $('#table').bootstrapTable('refresh', {silent: true});
                                // 灰按钮
                                disAbleButton();
                            } else {
                                // 错误提示
                                errorAlert(data);
                                // 后台错误
                                errorMsg(data.errorMsg);
                            }
                        }, 'json');
                }
            },
            close: {
                text: '取消',
                btnClass: 'btn-default',
                keys: ['esc'],
                action: function () {

                }
            }
        }
    });
}